package com.example.gdzd_demo.file.easyexcel;

import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSON;
import com.example.gdzd_demo.model.Student;
import com.google.gson.Gson;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;
import java.util.Map;

@SpringBootTest
@Slf4j
public class testReadExcel {

    /**
     * ʵ��AnalysisEventListener ��������ʽ
     */
    @Test
    public void testReadExcel() {
        String filePath = "F:\\gdzd_file\\student.xls";
        StudentDataListener listener = new StudentDataListener();
        EasyExcel.read(filePath, Student.class, listener).sheet().doRead();
        List<Student> studentList = listener.getStudentList();
        // �����ȡ�����û��б�����
        studentList.forEach(System.out::println);

    }

    /**
     * ͬ���ķ��أ����Ƽ�ʹ�ã�����������������ݷŵ��ڴ�����
     */
    @Test
    public void synchronousRead() {
        String fileName = "F://gdzd_file/student.xls";

        /**
         * ��дExcelPropertyע�������ȷ��ȡ
         */
        // ���� ��Ҫָ�������ĸ�classȥ����Ȼ���ȡ��һ��sheet ͬ����ȡ���Զ�finish
        List<Student> list = EasyExcel.read(fileName).head(Student.class).sheet().doReadSync();
        for (Student data : list) {
            log.info("��ȡ������:{}", JSON.toJSONString(data));
        }

        /**
         * дExcelPropertyע��ᱨ��
         */
        // ���� Ҳ���Բ�ָ��class������һ��list��Ȼ���ȡ��һ��sheet ͬ����ȡ���Զ�finish
        List<Map<Integer, String>> listMap = EasyExcel.read(fileName).sheet().doReadSync();
        for (Map<Integer, String> data : listMap) {
            // ����ÿ�����ݵļ�ֵ�� ��ʾ���ڵ��� �������е�ֵ
            log.info("��ȡ������:{}",  new Gson().toJson(data));
        }
    }
}
